﻿// Study0403.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
// 第四章 类和对象 复制函数

#include <iostream>
using namespace std;

class Point
{
public:
	Point(int xx, int yy) :x(xx), y(yy) { }
	Point(const Point& p);
	void setX(int xx) {
		x = xx;
	}
	void setY(int yy) {
		y = yy;
	}
	int getX() const {
		return x;
	}
	int getY() const {
		return y;
	}
private:
	int x, y;

};

Point::Point(const Point& p)
{
	x = p.getX();
	y = p.getY();
	cout << "调用复制构造函数" << endl;
}
void fun1(Point p)
{
	cout << "(" << p.getX() << "," << p.getY() << ")" << endl;
}

Point fun2()
{
	Point p(1, 2);
	return  p;
}

int main()
{
	Point a(4, 5);
	Point b(a); //用a初始化b。
	cout << b.getX() << endl;
	fun1(b); //对象b作为fun1的实参
	b = fun2(); //函数的返回值是类对象
	cout << b.getX() << endl;
	return 0;

}

